﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace BO
{
    public class ComposicaoComissoesBO
    {
        
        #region Contrutores
        public ComposicaoComissoesBO()
        {
            //
            // TODO: Add constructor logic here
            //
        }
        #endregion

        #region Leitores      
        public static ComposicaoComisso Selecionar(int id)
        {
            try
            {
                var bco = new ModeloContainer();
                var obj = bco.ComposicaoComissoes.FirstOrDefault(f => f.idComposicaoComissoes == id);
                if (obj == null) { throw new Exception("ComposicaoComisso não encontrado!"); }
                return obj;
            }
            catch (Exception ex)
            {
                throw new Exception("Selecionar() - " + ex.Message.ToString());
            }
        }
        #endregion

        #region Modificadores
        public static ComposicaoComisso Salvar(ComposicaoComisso novoObjeto)
        {
            try
            {
                var bco = new ModeloContainer();
                // Faz o INSERT
                if (novoObjeto.idComposicaoComissoes == 0)
                {
                    bco.ComposicaoComissoes.AddObject(novoObjeto);
                    bco.SaveChanges();
                }

                // Faz o UPDATE
                else
                {
                    var obj = bco.ComposicaoComissoes.FirstOrDefault(g => g.idComposicaoComissoes == novoObjeto.idComposicaoComissoes);

                    if (obj != null)
                    {
                        obj.idComissoes = novoObjeto.idComissoes;
                        obj.idVereador = novoObjeto.idVereador;
                        obj.Cargo = novoObjeto.Cargo;

                        bco.SaveChanges();

                        return obj;
                    }
                }

                return novoObjeto;    
            }
            catch (Exception ex)
            {
                throw new Exception(ex.Message.ToString());
            }
        }
        public static void Excluir(int id)
        {
            try
            {
                var bco = new ModeloContainer();
                var obj = bco.ComposicaoComissoes.FirstOrDefault(x => x.idComposicaoComissoes == id);
                if (obj != null)
                {
                    bco.ComposicaoComissoes.DeleteObject(obj);
                    bco.SaveChanges();
                }
            }
            catch (Exception ex)
            {
                throw new Exception("Excluir - " + ex.Message.ToString());
            }
        }
        #endregion
    }
}
